package com.it.regexdemo;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexDemo6 {
    public static void main(String[] args) {
        /*
        需求：把下面文本中的座机电话，邮箱，手机号，热线都爬取出来。
            来黑马程序员学习java，
            手机号：18512516758，18512508907
            或者联系邮箱：boniu@itcast.cn，
            座机电话：01036517895，010-98951256
            邮箱：bozai@itcast.cn，
            热线电话：400-618-9090，400-618-4000，4006184000，4006189090
            手机号的正则表达式：1[3-9]\d{9}
            邮箱的正则表达式：\w+@[\w&&[^_]]{2,6}(.[a-zA-Z]{2,3}){1,2}
            座机电话的正则表达式：0\d{2,3}-?[1-9]\d{4,9}
            热线电话的正则表达式：400-?[1-9]\d{2}-?[1-9]\d{3}
         */

        String s = "来黑马程序员学习java。"+
                "手机号：18512516758，18512508907"+
                "或者联系邮箱：boniu@itcast.cn，"+
                "座机电话：01036517895，010-98951256"+
                "邮箱：bozai@itcast.cn，"+
                "热线电话：400-618-9090，400-618-4000，4006184000，4006189090";

        String regex = "(1[3-9]\\d{9})|(\\w+@[\\w&&[^_]]{2,6}(.[a-zA-Z]{2,3}){1,2})"+
                "|(0\\d{2,3}-?[1-9]\\d{4,9})"+
                "|(400-?[1-9]\\d{2}-?[1-9]\\d{3})";

        //1.获取正则表达式的对象
        Pattern p = Pattern.compile(regex);

        //2.获取文本匹配器的对象
        //利用m去读取s，会按照p的规则去找里面的小串
        Matcher m = p.matcher(s);

        //3.利用循环获取每一个数据
        while( m.find() ) {
            System.out.println(m.group());
        }
    }
}
